package com.pig4cloud.pigx.user.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
/**
 * 归集相关定时任务执行记录
 */
public class TimingImplementRecordEnums {

	;
	/**
	 * 地址类型( 0 手续费 1 归集 2 保证金 3 黑洞 4 客户冷钱包 )
	 */
	@Getter
	@AllArgsConstructor
	public enum Type {
		/**
		 * 归集
		 */
		IMPUTATION("归集", "0"),
		/**
		 * 保证金
		 */
		MARGIN("保证金", "1"),
		/**
		 * 黑洞
		 */
		BLACK_HOLE("黑洞", "2"),
		/**
		 * 客户冷钱包
		 */
		CUSTOMER_WALLET("客户冷钱包", "3");

		private final String name;
		private final String value;

		/**
		 * 根据name查找对应value
		 *
		 * @param name 枚举名称
		 * @return java.lang.String
		 * @author gong_da_kai
		 * @date 2021/11/14
		 * @since 1.0.0
		 */
		public static String findValue(String name) {
			for (Type item : values()) {
				if (item.getName().equals(name)) {
					return item.getValue();
				}
			}

			return null;
		}

		/**
		 * 根据value查找对应的name
		 *
		 * @param value 枚举值
		 * @return java.lang.String
		 * @author gong_da_kai
		 * @date 2021/11/14
		 * @since 1.0.0
		 */
		public static String findName(String value) {
			for (Type item : values()) {
				if (item.getValue().equals(value)) {
					return item.getName();
				}
			}

			return null;
		}
	}

	/**
	 * 执行结果 ( 0 进行中 1 成功 2 失败 )
	 */
	@Getter
	@AllArgsConstructor
	public enum Status {
		/**
		 * 执行中
		 */
		IMPUTATION("执行中", "0"),
		/**
		 * 执行成功
		 */
		MARGIN("执行成功", "1"),
		/**
		 * 执行失败
		 */
		CUSTOMER_WALLET("执行失败", "2");

		private final String name;
		private final String value;

		/**
		 * 根据name查找对应value
		 *
		 * @param name 枚举名称
		 * @return java.lang.String
		 * @author gong_da_kai
		 * @date 2021/11/14
		 * @since 1.0.0
		 */
		public static String findValue(String name) {
			for (Status item : values()) {
				if (item.getName().equals(name)) {
					return item.getValue();
				}
			}

			return null;
		}

		/**
		 * 根据value查找对应的name
		 *
		 * @param value 枚举值
		 * @return java.lang.String
		 * @author gong_da_kai
		 * @date 2021/11/14
		 * @since 1.0.0
		 */
		public static String findName(String value) {
			for (Status item : values()) {
				if (item.getValue().equals(value)) {
					return item.getName();
				}
			}

			return null;
		}
	}

}
